import QtQuick 2.15
import QtQuick.Controls 2.15

Rectangle {
    id: logView
    width: 400
    height: 160
    border.width: 5
    color: "#f0f0f0"
    clip: true  // 确保内容不会溢出矩形区域

    property int maxMessage: 100 // 限制最多100条日志

    // 添加日志的公共方法
    function addLog(text, color = "black") {
        // 添加新日志
        logModel.insert(0, {"logText": new Date().toLocaleString(Qt.locale(), "yyyy-MM-dd hh:mm:ss") + ": " + text, "logColor": color})


        if (logModel.count > maxMessage) {
            logModel.remove(maxMessage)
        }
    }

    // 日志数据模型
    ListModel {
        id: logModel
    }

    // 日志显示区域
    ListView {
        id: logListView
        anchors.fill: parent
        anchors.margins: 5
        model: logModel
        spacing: 4

        // 自动滚动到最新日志
        onCountChanged: {
            positionViewAtBeginning()
        }

        // 日志项委托
        delegate: Text {
            width: parent.width
            text: logText
            font.pixelSize: 12
            wrapMode: Text.Wrap
            color: logColor
        }
    }

    // 组件初始化时添加示例日志
    Component.onCompleted: {
        addLog("系统启动完成", "green")
        addLog("初始化日志组件...")
        addLog("日志缓冲区大小: " + maxMessage + "条")
    }
}
